package cn.jhc.bean;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

public class CartBean implements Serializable{
	private HashMap<Integer,CartItemBean> items=null;
	private int numofItems=0;
	
	public CartBean(){
		items=new HashMap<Integer, CartItemBean>();
	}
	//在购物车里增加一个条目，有里就不在增加。
	public synchronized void addItem(Integer isbn,ShopBean shop){
		if(!items.containsKey(isbn)){
			CartItemBean item=new CartItemBean(shop);
			items.put(isbn, item);
			numofItems++;
		}
		
	}
	//在购物车里删除一个条目
	public synchronized void deleteItem(Integer isbn){
		if(items.containsKey(isbn)){
			items.remove(isbn);
			numofItems--;
		}
		
	}
	//清除所有条目
	public synchronized void clear(){
		items.clear();
		numofItems=0;
	}
	//得到购物车里的所有条目
	public synchronized int getNumOfItems(){
		return numofItems;
	}
	//设置某件商品的购买数量
	public synchronized void setItemNum(Integer isbn,int quantity){
		if(items.containsKey(isbn)){
			
			CartItemBean item =(CartItemBean)items.get(isbn);
			if(quantity<=0){
				items.remove(isbn);
				numofItems--;
			}
			else{
				item.setQuantity(quantity);
			}
		}
	
	}
	//得到购物车中所有商品的价格
	public synchronized double getTotalPrice(){
		double amount=0;
		Iterator<CartItemBean> it= items.values().iterator();
		while(it.hasNext()){
			CartItemBean item=(CartItemBean)it.next();
			amount+=item.getItemPrice();
		}
		return amount;
	}
	//得到购物车中所有商品的条目
	public synchronized Collection<CartItemBean> getItems(){
		return items.values();
	}
	//判断商品是否已经加入购物车
	public synchronized boolean isExist(Integer isbn){
		if(items.containsKey(isbn))
			return true;
		else
			return false;
	}

}
